import Vue from "vue";
import Vuex from "vuex";
// 引入本地存取
import { getToken, saveToken, setData, getData } from "@/utils/localStorage.js";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    tokenInfo: getToken() || {},
    photo: getData("userPhoto") || "" //用户头像
  },
  mutations: {
    // 存放操作state里数据的各种方法
    sToken(state, str) {
      state.tokenInfo = str;
      // 在本地存token
      saveToken(str);
    },
    // 保存用户的头像
    saveAvatar(state, pho) {
      state.photo = pho;
      setData("userPhoto", pho);
    },
    //更新token
    update(state, strToken) {
      state.tokenInfo.token = strToken;
      saveToken(state.tokenInfo);
    }
  },
  //相当于state的计算属性，当state的数据更新，这里会跟着实时更新
  getters: {
    transformToken(state) {
      return state.tokenInfo.token;
    }
  }
});
